package com.victualler.core.common.annotation;



import com.victualler.core.common.enums.LinkType;
import com.victualler.core.common.enums.QueryType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @Aouthor Guoshichang
 * @Date 17:38 on 2018/5/26.
 * @Function 负责组装通用的查询对象
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public  @interface SimpleQueryWhere {
    //sql连接类型 and or ...
    QueryType queryType() default QueryType.AND;

    //sql 的值比较类型 = <= >= like between 等
    LinkType linkType() default LinkType.EQ;


    //特殊查询名称
    String specialName() default "";

//    //特殊查询值 适用于特殊查询条件如  id in (select id from b )
//    String specialValue() default "";
//    //特殊查询捆绑对象 若有特殊值 但部分参数是某个字段的条件时使用
//    String[] specialValueBindField() default "";


    //对于 is null 等类型 无拼接值
    boolean noValue() default false;

    //对于between类型的关联开始字段
    String betweenStartField() default "";

    //对于between类型的查询关联结束字段
    String betweenEndField() default "";
}
